package com.xigua.字符串;

/**
 * @author LiRongHua
 * @Title: ${file_name}
 * @Package ${package_name}
 * @Description: 当一个字符串 s 包含的每一种字母的大写和小写形式 同时出现在 s中，就称这个字符串s是美好字符串。
 * 比方说，"abABB" 是美好字符串，因为 'A' 和 'a' 同时出现了，且'B'和'b'也同时出现了。
 * 然而，"abA" 不是美好字符串因为 'b' 出现了，而 'B' 没有出现。
 * 给你一个字符串s，请你返回s最长的美好子字符串。如果有多个答案，请你返回最早出现的一个。
 * 如果不存在美好子字符串，请你返回一个空字符串。
 * @date 2022/2/111:00
 */
public class _1763_最长的美好子字符串 {
    public static void main(String[] args) {
        System.out.println(longestNiceSubstring("abABabABCc"));
    }

    public static String longestNiceSubstring(String s) {
        int n = s.length();
        int childStart = 0;
        int childLenth = 0;
        for (int i = 0; i < n; i++) {
            int lower = 0;
            int upper = 0;
            for (int j = i; j < n; j++) {
                if (Character.isLowerCase(s.charAt(j))){
                    lower |= 1 << (s.charAt(j)-'a');
                }else {
                    upper |= 1 << (s.charAt(j) - 'A');
                }
                if (lower == upper && j-i+1 >childLenth){
                    childStart = i;
                    childLenth = j-i+1;
                }
            }
        }
        return s.substring(childStart,childStart+childLenth);
    }

}
